home *** CD-ROM | disk | FTP | other *** search
- /*
-
- CIsleResFile.c
- Superclass: CIsleFile
-
- CResFile (Copyright © 1989 Symantec Corporation. All rights reserved.)
- transplanted into CIsleFile
-
- April 2, 1992 isl
-
- */
-
-
- #include <CIsleResFile.h>
-
-
- /*=====================*/
- /*===---------------===*/
-
- void CIsleResFile::IResFile()
- Begin
- CIsleFile::IIsleFile();
-
- refNum= kNone;
- End
-
-
- /*===---------------===*/
-
- void CIsleResFile::Open(SignedByte permission)
- Begin
- Boolean wasLocked;
-
- ASSERT( IsOpen() == False);
-
- wasLocked= Lock(True);
- refNum= HOpenResFile(volNum, dirID, name, permission);
- Lock(wasLocked);
-
- if (refNum == kFailed)
- {
- refNum= kNone;
- FailResError();
- }
- End
-
- /*===---------------===*/
-
- void CIsleResFile::Close()
- Begin
- if (refNum > kNone)
- {
- CloseResFile(refNum);
- refNum= kNone;
- FailOSErr( FlushVol(Null, volNum) );
- }
- End
-
- /*===---------------===*/
-
- void CIsleResFile::MakeCurrent()
- Begin
- ASSERT( IsOpen());
-
- UseResFile(refNum);
- End
-
- /*===---------------===*/
-
- Boolean CIsleResFile::IsOpen(void)
- Begin
- return refNum != kNone;
- End
-
- /*===---------------===*/
-
- Boolean CIsleResFile::HasResFork(void)
- Begin
- HFileParam pBlock;
-
- pBlock.ioNamePtr= name;
- pBlock.ioVRefNum= volNum;
- pBlock.ioFDirIndex= kNone;
- pBlock.ioDirID= dirID;
-
- FailOSErr( PBHGetFInfo( (HParmBlkPtr) &pBlock, False));
-
- return pBlock.ioFlRLgLen != kNone;
- End
-
- /*===---------------===*/
-
- void CIsleResFile::CreateNew(OSType creator, OSType type)
- Begin
- Boolean wasLocked;
-
- if (!inherited::ExistsOnDisk())
- inherited::CreateNew(creator, type);
-
- wasLocked= Lock(True);
- HCreateResFile(volNum, dirID, name);
- Lock(wasLocked);
-
- FailResError();
- End
-
- /*===---------------===*/
-
- Boolean CIsleResFile::ExistsOnDisk(void)
- Begin
- if (inherited::ExistsOnDisk())
- return HasResFork();
- else
- return False;
- End
-
- /*===---------------===*/
-
- void CIsleResFile::Update( void)
- Begin
- ASSERT(IsOpen());
-
- UpdateResFile(refNum);
- FailResError();
-
- FailOSErr( FlushVol( Null, volNum) );
- End
-
- /*===---------------===*/
- /*=====================*/